﻿#include "msg.h"
#include <QByteArray>

Msg::Msg(QObject* parent)
	: QObject{ parent }
	, msg_data(0)
{}


Msg* Msg::OnReceiveData(QByteArray dat, int len, int& used, QString& errMsg)
{
	errMsg = "";
	used = 0;

	if (len < 18)
		return nullptr;

	Msg* msgV1 = Msg::ParseFromByte(dat, len, errMsg);

	if (msgV1 != NULL && msgV1->Parse(dat, len) > 0)
	{
		used += msgV1->DataLen();

		return msgV1;
	}
	used += 18;
	//  if (string.IsNullOrEmpty(errMsg))
	return NULL;
}

int Msg::DataLen()
{
	return msg_data.length();
}
void Msg::calcChecksum()
{
	Checksum = 0;
	for (int i = 1; i < msg_data.length() - 2; i++)
		Checksum += (unsigned char)msg_data[i];
}


bool  Msg::IsValid(QByteArray dat, int len)
{
	return false;
}

QString  Msg::CmdIDString()
{
	return "";
}


QByteArray Msg::ToByte()
{

	return NULL;
}

int  Msg::Parse(QByteArray dat, int dataLen)
{
	return 0;
}


Msg* Msg::ParseFromByte(QByteArray dat, int len, QString& errMsg)
{
	return NULL;

}
